package com.jt.demo8_anno;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

@Component//key:user value:放射后的对象
public class User {
    /*该类主要测试注解的注入方式,
    * 练习对象的嵌套关系
    * 注解的写法与xml写法的原理相同,写法不同*/

    /*
    * 注解说明:
    * 1,@Autowired 自动注入
    * 规则:
    * 1,默认条件使用set方式注入,按照类型匹配
    * 2,set方式注入,也可以按照name名称进行匹配
    * 3,只要使用注解,默认自动生成Setxx方法    * 实现原理:
    * 1,类型匹配:如果是接口,则自动匹配其实现类对象
    * 2,name名称匹配:根据spring中的key进行注入,
    *
    * 注解说明:
    * @Qualifier必须和@Autowired联用,
    * 并且需要指定value的名称,就是spring的key
    * 准则:
    * 一般条件下,Spring都是单实现!!!
    *
    * */
    @Autowired
    @Qualifier(value = "pig")
    private Pet pet;

    public  void hello(){
        pet.hello();
    }

}
